In fact we have two systems of relations. One - the simplified model for
the monsters, the other one - more
complicated model for stalkers. All about relationships described in the file
game_relations.ltx
Each
group, and
each
type of
monster
defines a
team.
The relations
between
the monsters
is
considered
by
the commands
(yet so,
but
it
is quite possible
that
"teams"
in
general
will be removed from the game)
Commands for
stalkers
appear in the
stalkers
section
[game_relations]
(communities string.)
Commands for
monsters appear in the section [monster_communities] (communities string.)
The relations between the monsters are set in section
[monster_relations].
The relationship between the monsters, as well as between the monsters
and stalkers is determined by a simple system of "friend", "enemy", "worst
enemy".
The difference between an "enemy "and "worst enemy" is in choosing the
enemy if there are a few enemies. The first monster will try to attack the worst
enemy, when all other parameters are equal.
For a more sensible outputting information to the screen and work with
this info ,we set boundary conditions under which the parameters of rating and
reputation change values. In section:
[game_relations]
;real separation of the groups on the scale of reputation
rating
= novice, 30, experienced, 60, veteran, 90, master
reputation
= terrible, -1000, very_bad, -150, bad, -50,
neutral, 50, good, 150, very_good, 1000,
excellent
rating_names
= novice, 30, experienced, 60, veteran, 90, masterreputation_names
= terrible, -1000, very_bad, -150, bad, -50,
neutral, 50, good, 150, very_good, 1000,
excellent
goodwill_names
= enemy, -1000, hostile, -500, indifferent, 500, companionable, 1000,
friendly
attitude_neutal_threshold
= -400 ;when attitude smaller than treshold value, we set ALife::eRelationEnemyattitude_friend_threshold = 500
;when attitude smaller than treshold
value, we set ALife::eRelationNeutral, иначе ALife::eRelationFriend
in the section [communities_relations] defined the relationship
between the factions of stalkers.
Setting 0 means that these groups
initially neutral. More precisely that between them
there is no modifier relations. -5000, As +5000 indicates that
these groups among themselves eternal enemies or
friends.
So, they never will change their attitude .
For an actor there is no eternal friends and cannot be.
Example eternal friends - military to military, zombie stalkers to
the monolith, and vice versa. If we want to set the initial
value other than 0, which then may change depending on player's actions - you
need to choose between 1000 -1000. For example at the moment
ecologists are friendly to the player, but it could easily
change.
Section
[rank_relations] described the relationship between the ranks of the stalkers.
At the moment there are zero
everywhere, as it is stupid like that ;), but in general the mechanism is
working, and if you will find for it a logical application - you can use it.
In the section
[reputation_relations] described the relationship between reputations.
The general sense is - the bads
are good to bads. The goods are good to
goods.
Varies from -1000 to +1000.
In such a way that if we don't do
anything bad to Vasya , but did it
to everyone else, then the initially neutral.
Further options affect the personal parameters of the character.
[rank_kill_points]
How strong increased
our coolness with the killing of the characters.
Changing our goodness while attacking or killing stalkers
[action_points]
neutral_attack_goodwill
= -300
enemy_attack_goodwill = -100
; other
for
a couple
of fights we will arrange
negative reputation:)
neutral_attack_reputation
= 0
enemy_attack_reputation
= 0
friend_kill_goodwill
= -500
neutral_kill_goodwill
= -300
enemy_kill_goodwill
= -100
community_member_kill_goodwill = -50000
friend_kill_reputation
= -50
neutral_kill_reputation
= -20
enemy_kill_reputation
= 0
special option, which is responsible for the frequency of reaction.
This will happen if for 1 second character will take two hits from
the same object, it will worsen the ratio of only 1 time. Needs to remove effect that machine gun will not compromise attitude
more than a shot from sniper rifle. Or like throwing a grenade will
cause us 20 hits, but the relationship soured only 1 time instead of 20.
min_attack_delta_time
= 1parameters
under which the
character
will
be
assumed that
we
had helped him
and
what
we
get for this. Now we working with
this
idea:
Assistance
is
considered
successful
if
the
monster
is
attacking
the stalker, and
we
have make damage to monster.
If our hit greater than 30, then we helped
help_hit_threshold = 30
fight_remember_time = 10 ;(c) for register
Who gives us a profit for the help?
friend_fight_help_goodwill = 30
neutral_fight_help_goodwill
= 30
enemy_fight_help_goodwill = 0
friend_fight_help_reputation = 2
neutral_fight_help_reputation = 2
enemy_fight_help_reputation = 0